/*
 * TcpClient.h
 *
 *   Created on: 2010-1-29     
 *  Description: 
 *    Copyright: 2010 @ ICT Li Heyuan
 */

#ifndef TCP_CLIENT_H_
#define TCP_CLIENT_H_

#include "Client.h"

class TcpClient: public Client
{
public:
	/* 无server初始化
	 */
	TcpClient() :
		Client()
	{
	}

	/* 使用EasyAddr初始化Client
	 * @param addr 服务器的地址
	 */
	TcpClient(const EasyAddr &addr) :
		Client(addr)
	{
	}

	/* 使用ip:port初始化Client
	 * @param ip 服务器的ip
	 * @param port 服务器的port
	 */
	TcpClient(const std::string&ip, unsigned int port) :
		Client(ip, port)
	{
	}

	/* 析构函数，什么也不做
	 */
	~TcpClient()
	{
	}

	/* 执行rpc调用
	 * @param ret 成功时为result,失败为error
	 * @param notification true则为notification，false否
	 */
	virtual bool _call(const string &sendBuf, Json::Value &ret,
			unsigned int timeout = 3);

	/* 执行json-rpc的通知
	 * @param req json-rpc请求字符串
	 * @param timeout 超时
	 */
	virtual bool _notification(const string &sendBuf, unsigned int timeout = 3);

};

#endif /* TCP_CLIENT_H_ */
